﻿/*
.NET快速开发整合框架（RDIFramework.NET），基于.NET的快速信息化系统开发、整合框架，给用户和开发者最佳的.Net框架部署方案。

博客：[CSDN]http://blog.csdn.net/chinahuyong	
[CNBLOGS]http://www.cnblogs.com/huyong 

交流QQ：406590790 
QQ群：16653241
微博：http://t.qq.com/yonghu86
邮箱：406590790@qq.com
*************************************************************************************
* RDIFramework.NET框架“数据库连接”业务界面逻辑
*
* 主要完成模块（菜单）的增加、修改、删除、移动、导出、用户或角色所拥有的模块（菜单）设置等。
* 修改记录：
*   1. 2013-08-28 EricHu 新增本业务逻辑的编写。
*/

var actionUrl = 'handler/DBLinkAdminHandler.ashx';
var formUrl = "Modules/html/DBLinkForm.htm?n=" + Math.random();
var navgrid;

$(function () {
    autoResize({ dataGrid: '#dbLinkGrid', gridType: 'datagrid', callback: grid.databind, height: 5 });
    $('#btnAdd').click(DBLinkAdminMethod.AddDBLink);
    $('#btnEdit').click(DBLinkAdminMethod.EditDBLink);
    $('#btnDelete').click(DBLinkAdminMethod.DeleteDBLink);
    $('#btnRefresh').click(function () { //刷新
        grid.reload();
    });
});

var grid = {
    databind: function (winsize) {
        navgrid = $('#dbLinkGrid').datagrid({
            title: '数据库连接列表',
            iconCls: 'icon icon-database',
            noheader: true,
            width: winsize.width,
            height: winsize.height,
            nowrap: false,
            rownumbers: true,
            resizable: true,
            singleSelect: true,
            collapsible: false,
            url: actionUrl + '?action=GetList',
            idField: 'Id',           
            columns: [[
                 { title: '连接名称', field: 'LinkName', width: 150 },
                 { title: '数据库类型', field: 'LinkType', width: 100 },
                 { title: 'Id', field: 'Id', hidden: true },
                 { title: '有效', field: 'Enabled', width: 40, align: 'center', formatter: imgcheckbox },
                 { title: '描述', field: 'Description', width: 399 }
            ]]
        });
    },
    reload: function () {
        navgrid.datagrid('reload');
    },
    selected: function () {
        return navgrid.datagrid('getSelected');
    }
};

var imgcheckbox = function (cellvalue, options, rowObject) {
    return cellvalue ? '<img src="/css/icon/ok.png" alt="正常" title="正常" />' : '<img src="/css/icon/stop.png" alt="禁用" title="禁用" />';
}

var DBLinkAdminMethod = {
    AddDBLink: function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        //功能代码逻辑...
        var addDialog = top.$.hDialog({
            title: '新增数据库连接',
            iconCls: 'icon-database_add',
            href: formUrl,
            width: 650,
            height: 340,
            onLoad: function () {
                top.$('#chk_Enabled').attr("checked", true);
                DBLinkAdminMethod.BindLinkType();
                top.$('#txt_LinkName').focus();
            },
            submit: function () {
                var vlinktype = top.$('#txt_LinkType').combobox('getValue');
                if (top.$('#DBLinkForm').validate().form()) {
                    $.ajaxjson(actionUrl, 'action=AddDBLink&vlinktype=' + vlinktype + "&" + top.$('#DBLinkForm').serialize(), function (d) {
                        if (d.Data > 0) {
                            msg.ok('新增数据库连接成功!');
                            addDialog.dialog('close');
                            grid.reload();
                        } else {
                            MessageOrRedirect(d);
                        }
                    });
                }
            }
        });
    },
    EditDBLink: function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        //功能代码逻辑...
        var row = grid.selected();
        if (row) {
            var editDailog = top.$.hDialog({
                href: formUrl + '?v=' + Math.random(),
                title: '修改数据库连接',
                iconCls: 'icon-database_edit',
                width: 650,
                height: 340,
                onLoad: function () {
                    DBLinkAdminMethod.BindLinkType();               
                    var parm = 'action=GetEntity&KeyId=' + row.Id;
                    $.ajaxjson(actionUrl, parm, function (data) {
                        if (data) {
                            top.$('#txt_LinkName').val(data.LinkName);                            
                            top.$('#txt_LinkType').combobox('setValue', data.LinkType);
                            top.$('#chk_Enabled').attr('checked', data.Enabled == "1");
                            top.$('#txt_LinkData').val(data.LinkData);
                            top.$('#txt_Description').val(data.Description);
                        }
                    });
                    top.$('#txt_LinkName').focus();
                },
                submit: function () {
                    if (top.$('#DBLinkForm').validate().form()) {
                        var vlinktype = top.$('#txt_LinkType').combobox('getValue');
                        var query = 'action=EditDBLink&vlinktype=' + vlinktype + '&KeyId=' + row.Id + '&' + top.$('#DBLinkForm').serialize();
                        $.ajaxjson(actionUrl, query, function (d) {
                            if (d.Success) {
                                msg.ok(d.Message);
                                editDailog.dialog('close');
                                grid.reload();
                            } else {
                                MessageOrRedirect(d);
                            }
                        });
                    }
                }
            });
        }
        else {
            msg.warning('请选择待修改的数据。');
        }
    },
    DeleteDBLink: function () {
        if ($(this).linkbutton('options').disabled == true) {
            return;
        }
        var row = grid.selected();
        if (row) {
            $.messager.confirm('询问提示', '确认要删除[' + row.LinkName + ']数据库连接吗?', function (data) {
                if (data) {
                    $.ajaxjson(actionUrl, 'action=DeleteDBLink&KeyId=' + row.Id, function (d) {
                        if (d.Data > 0) {
                            msg.ok('数据库连接删除成功。');
                            grid.reload();
                        } else {
                            MessageOrRedirect(d);
                        }
                    });
                }
            });
        } else {
            msg.warning('请选择待删除的数据。');
        }
    },
    BindLinkType: function () {
        top.$('#txt_LinkType').combobox({
            url: 'Modules/handler/DataItemAdminHandler.ashx?action=GetCategory&categorycode=DataBaseType',
            method: 'get',
            valueField: 'ItemValue',
            textField: 'ItemName',
            editable: false,
            panelHeight: 'auto'
        });
    }
}